package com.mvity.framework.common.utils.extend;

import org.springframework.beans.factory.config.PropertyPlaceholderConfigurer;

import com.mvity.framework.common.utils.CryptoUtil;

/**
 * 处理 properties 文件中的 DES 加密数据
 * 
 * 待处理的加密属性前缀 : cbf.crypto.des.xxxx=xxxxxx
 * 
 * @author vity
 * @date 2012-3-15
 * @mail vity.1215@gmail.com
 */
public final class CryptoPropertyPlaceholderConfigurer extends PropertyPlaceholderConfigurer {

	private String prefix = "cbf.crypto.des.";

	@Override
	protected String convertProperty(String propertyName, String propertyValue) {
		if (this.isCryptoProperty(propertyName)) {
			try {
				return CryptoUtil.decryptDESString(propertyValue);
			} catch (Exception e) {
				e.printStackTrace();
				return propertyValue;
			}
		} else {
			return propertyValue;
		}
	}

	/**
	 * 是否为加密属性
	 * 
	 * @param property
	 * @return
	 */
	private boolean isCryptoProperty(String property) {
		return property.startsWith(prefix);
	}
}
